﻿#ifndef IOBASECLASS_H
#define IOBASECLASS_H

#include <QString>
#include <QStringList>
#include <QFile>
#include <QList>
#include <QVector>
#include "API_BaseModule.h"

class QDomDocument;
class QTextStream;
class QDataStream;

namespace BaseModule
{

    class API_BASEMODULE IOBase
    {
    public:
        IOBase(const QString& fileName);
        IOBase();
        ~IOBase();
        //brief    :  设置需要读取的文件路径
        //input    :  name-文件路径
        void setFileName(const QString& name);
        //brief    :  读取实时曲线数据
        //input    :  fileName-文件路径
        //output   :  x-x轴对应的变量，y-y轴对应的变量
        void readRealTimeData(QList<QVector<double>>& x, QList<QVector<double>>& y, QString fileName);

    public:
        //brief    :  读取文件，子类重载
        virtual bool read();
        //brief    :  写内容到文件，子类重载
        //input    :  fileName-文件路径
        //return   :  true-成功，false-失败
        virtual bool write(QString fileName = QString());

    protected:
        QString m_fileName;//文件名
        QFile m_file;//文件指针
        QTextStream* m_stream{};//txt文件流
        QDataStream* m_dataStream{};//数据文件流

        QDomDocument* m_doc{};//文件

    };

}


#endif
